< previous page page_173 next page >

Page 173
For distributed applications you may deploy using Microsoft's DCOM or OMG's CORBA, a test engineer will verify the quality of that system on each of its target platforms. A thorough distributed portability test will also check the behavior of Visual Basic or the ActiveX component on each remote system, and may also check interactions between the application and the remote system at the machine level.
Further, distributed systems require integration testing. If the remote system is object-oriented, integration testing will assess the quality of the communication between both systems' object interfaces. If the remote system is not object-oriented, the integration test will concentrate on the communication between the object interface of your application (as represented by the public object) and the non-object-oriented interface of the remote system. With integration testing, the test engineer is testing the interaction between your application and the remote system actor. (Recall that any external system with which your application interacts is also known as an actor to your system.)
In Day 6, Building and Testing Components, you were introduced to test cases. Testers need to create test cases based on use cases you or a team member creates. An instance of a test case is a test script. For complex systems involving thousands of users and dozens of external system actors, you can expect hundreds (in some cases, thousands) of test scripts. Test scripts can be extremely technically detailed, incorporating tests for automatically generated reports, access violations of an object by several competing client objects, database concurrency/multiple user access, software and hardware fault tolerance constraints, and so forth.
Testing also includes graphical user interface testing. Ergonomics and human factors in engineering may come into play if your system is to be used by dozens or hundreds of users who must sit in front of your application practically all day performing use cases against it. It is important to design your GUIs not only with visual appeal, but also with self-testing mechanisms so that simple errors like date formats and currency values are trapped before the business service tier or server is activated for more complex processing. There's nothing more annoying than entering lots of key business data, submitting it for business processing, and having it rejected some time later for an invalid date value.
With iterative and incremental development, you'll want to regression-test your application for each increment. Self-testing methods in your objects help minimize the effort involved in regression testing by allowing the tester to concentrate more on business rule violations and less on data type violations. During regression testing, expect the tester to give you valuable input for improvement of your code, design models, and use cases.
If you develop Visual Basic applications for commercial sales, or are in a politically charged corporate climate where getting early user feedback is critical, you will probably have a beta test engineer on your project. Beta testing is a way of validating your

 
< previous page page_173 next page >

If you like this book, buy it!